package sort;
import java.util.Arrays;

/**
 * 冒泡排序
 */
public class BubbleSort {
    public static void main(String[] args) {
//        int arr[] = {3,2,1,4,5,8,7};
//
//        bubbleSort(arr);
        //测试速度,创建一个随机的数组
        int[] arry = new int[50000];
        for (int i = 0; i < 50000; i++) {
            arry[i] = (int)(Math.random()*800000000);
        }
        System.out.println(Arrays.toString(arry));

        long startTime = System.currentTimeMillis();
        bubbleSort(arry);
        long endTime = System.currentTimeMillis();

        System.out.println("花费的时间为："+(endTime-startTime)+"ms");





    }
    public static void bubbleSort(int[] arr){
        int temp = 0; //临时变量
        boolean flag = false;  //标识变量,表示是否进行交换
        for (int j = 0; j <arr.length-1 ; j++) {
            for (int i = 0; i <arr.length-1-j ; i++) {
                if(arr[i]>arr[i+1]){
                    flag = true;
                    temp  = arr[i];
                    arr[i] = arr[i+1];
                    arr[i+1] = temp;
                }
            }

            //优化代码
            if(flag == false){
                System.out.println("排序后："+Arrays.toString(arr));
                break;
            }else {

                flag = false;  //需要把flag标志位改变，继续进行判断
            }
        }
    }
}
